/**  
 * @Title: FileUtil.java
 * @Package com.xzit.uscdl.common.util
 * @Description: TODO
 * @author 董亮亮
 * @date 2016年3月19日 下午2:55:47
 * @version V1.0  
 */
package com.xzit.tmms.common.util;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.UUID;

import org.springframework.web.multipart.MultipartFile;

import com.xzit.tmms.common.constant.PathConstant;
import com.xzit.tmms.common.exception.UtilException;

/**
 * @ClassName: FileUtil
 * @Description: TODO
 * @author 董亮亮
 * @date 2016年3月19日 下午2:55:47
 */
public class FileUtil {

	/**
	 * @Title: isNotEmpty
	 * @Description: TODO 判断文件非空
	 */
	public static boolean isNotEmpty(MultipartFile file) {
		if (file != null && file.getSize() > 0) {
			return true;
		}
		return false;
	}

	/**
	 * @Title: isEmpty
	 * @Description: TODO 判断文件为空
	 */
	public static boolean isEmpty(MultipartFile file) {
		return !isNotEmpty(file);
	}

	/**
	 * @Title: createFileName
	 * @Description: TODO 下载文件时设置文件名称
	 */
	public static String createFileName(String name) throws UtilException {
		String newName = "";
		if (CommonUtil.isNotEmpty(name)) {
			try {
				newName = new String(name.getBytes("UTF-8"), "iso-8859-1");
			} catch (UnsupportedEncodingException e) {
				throw new UtilException("生成文件名时发生错误");
			}
		}
		return newName;
	}

	/**
	 * @Title: saveFile
	 * @Description: TODO 保存文件到目录
	 */
	public static String saveFile(MultipartFile file) throws UtilException {
		if (file != null && file.getSize() > 0) {
			// 原始名称
			String originalName = file.getOriginalFilename();
			if (CommonUtil.isNotEmpty(originalName)) {
				// 新的文件名称
				String newFileName = UUID.randomUUID() + originalName.substring(originalName.lastIndexOf("."));
				// 设置物理存储路径
				File newFile = new File(PathConstant.fileAbsPath + newFileName);
				try {
					// 文件保存
					file.transferTo(newFile);
				} catch (Exception e) {
					throw new UtilException("文件存储时发生异常");
				}
				// 返回相对路径
				return PathConstant.fileRelPath + newFileName;
			}
		}
		return "";
	}
}
